package top.kent90.dao;

import top.kent90.annotation.MyMapper;
import top.kent90.pojo.SysRoleUser;
import top.kent90.pojo.SysUser;

import java.util.List;
import java.util.Map;

@MyMapper
public interface SysUserDao {
    /**
     * 通过登录名称来查询用户
     * @param loginName
     * @return
     */
	SysUser queryByLoginName(String loginName);

	/**
	 * 通过条件查询用户
	 * @param param
	 * @return
	 */
	List<SysUser> queryByCondition(Map<String, String> param);

	/**
	 * 查询系统菜单
	 * @param param
	 * @return
	 */
	List<Map<String,Object>> querySysMenu(Map<String, Object> param);

	/**
	 * 查询所有的菜单
	 * @param param
	 * @return
	 */
	List<Map<String,Object>> queryAllSysMenu(Map<String, Object> param);

	/**
	 *更新密码
	 * @param param
	 * @return
	 */
	int updatePwd(Map<String, String> param);

	/**
	 * 保存用户
	 * @param user
	 * @return
	 */
	int saveUser(SysUser user);

	/**
	 * 删除用户
	 * @param userId
	 * @return
	 */
	int delUser(String userId);
	
    /**
     * 批量删除用户
     * @param sidArr
     * @return
     */
	int delMoreUser(String[] sidArr);

	/**
	 *  查询用户角色
	 *  @param userId
	 * @return
	 */
	List<Map<String, Object>> queryRoles(String userId);

	/**
	 * 保存用户规则
	 * @param param
	 * @return
	 */
	int saveRoleUser(List<SysRoleUser> param);

	/**
	 * 通过用户id删除用户规则
	 * @param userId
	 */
	void delRoleViaUserId(int userId);
	
	/**
	 * 查询用户权限
	 * @param userId
	 * @return
	 */
	List<Map<String,String>> queryUserRights(Integer userId);

	/**
	 * 根据条件查询用户
	 * @param map
	 * @return
	 */
	List<SysUser> querySysUser(Map<String, Object> map);
}
